Connexion à une base de données

Header :

La connexion à une base de données en PHP est une opération courante dans le développement web, permettant d'interagir avec une base de données pour stocker et récupérer des données. En PHP, vous pouvez utiliser les extensions PDO (PHP Data Objects) ou MySQLi (MySQL Improved) pour établir une connexion à une base de données.


Body

Bonne pratique

Dans tous les cas, nous allons souvent vouloir mettre notre connexion à la base de donnée dans un fichier à part, qui sera utilisé en require_once() en debut de page. On va donc très souvent créer un fichier DBConnexion.php, et dans le fichier qui a besoin de se connecter à la base de donnée, nous aurons donc require_once(DBConnexion.php). Cela nous évitera de retaper tout le code de connexion à chaque fois que l'on veut accéder à la base de donnée.

Utilisation de PDO

PDO est une interface d'accès aux bases de données PHP qui offre une abstraction de haut niveau, permettant d'interagir avec différentes bases de données en utilisant une syntaxe uniforme.

Connexion

Voici comment établir une connexion à une base de données MySQL en utilisant PDO :

$dbName = "nom_base_de_donnees";
$dbUser = "utilisateur";
$dbPassword = "mot_de_passe";
$dbHost = "hostname";// dans votre cas : localhost
try {
    $bdd = new PDO("mysql:host=" . $dbHost . ";dbname=" . $dbName, $dbUser , $dbPassword);
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connexion réussie";
} catch (PDOException $e) {
    exit("Erreur de connexion : " . $e->getMessage());
}

Dans cet exemple :

  • hostname est l'adresse du serveur MySQL.
  • nom_base_de_donnees est le nom de la base de données à laquelle vous souhaitez vous connecter.
  • utilisateur est le nom d'utilisateur MySQL.
  • mot_de_passe est le mot de passe associé à l'utilisateur MySQL.

Déconnexion

$bdd = null;

Utilisation de MySQLi

MySQLi est une interface améliorée pour accéder à MySQL en PHP, offrant des fonctionnalités supplémentaires par rapport à l'ancienne extension MySQL.

Connexion

Voici comment établir une connexion à une base de données MySQL en utilisant MySQLi :

$bdd = new mysqli('hostname', 'utilisateur', 'mot_de_passe', 'nom_base_de_donnees');

if ($bdd->connect_error) {
    die("Erreur de connexion : " . $bdd->connect_error);
} else {
    echo "Connexion réussie";
}

Dans cet exemple :

  • hostname est l'adresse du serveur MySQL.
  • utilisateur est le nom d'utilisateur MySQL.
  • mot_de_passe est le mot de passe associé à l'utilisateur MySQL.
  • nom_base_de_donnees est le nom de la base de données à laquelle vous souhaitez vous connecter.

La fonction die() est comme la fonction exit(), elles permettent d'afficher un message avant d'arrêter le script en cours, une sort de echo + un exit en quelque sorte.

Déconnexion

$conn->close();

Conclusion

La connexion à une base de données en PHP est une étape essentielle dans le développement d'applications web dynamiques. Que vous utilisiez PDO ou MySQLi, assurez-vous de fournir des informations de connexion correctes et de gérer les erreurs de manière appropriée pour assurer une expérience utilisateur fluide et sécurisée.

De notre côté, nous utiliserons PDO exclusivement pour ne pas multiplier les manières de faire et car c'est sans doute la plus utilisée. Je voulais simplement vous présenter ici 2 manières de faire, pour que vous sachiez aussi que ce n'est pas très différent, et que vous pourrez très facilement vous adapter à une autre manière de faire le temps venu.

Prérequis

Il est bizarre de parler des prérequis maintenant, mais je voulais d'abord que vous soyez confronté au message d'erreur de votre console. Si vous avez le message Connexion réussie lorsque vous le testez avec votre base de donnée, tout va bien dans le meilleur des mondes, sinon, il y a beaucoup d'erreur possible. je vais couvrir quelques petites choses à vérifier avant de vous énerver et chercher une solution plus spécifique à votre problème :

  1. Vérifier dans PHPStorm que le PHP.ini utilisé est bien spécifié (et correspond à celui de votre version de php), sinon, le modifier
  2. Dans votre php.ini, décommenter les lignes extension_dir='ext' et extension = pdo_mysql
  3. changer dans extension_dir ='ext' le ext en le chemin direct vers votre chemin d'extension. Logiquement, cela devrait ressembler à : C:/cheminVersVotrePHP/ext

Une fois cela fait, redémarrez bien votre PHPStorm, si tout est ok, vous devriez maintenant faire fonctionner la connexion, si pas, il faudra approfondir les recherches, mais il est difficile pour moi de savoir les résoudre à l'avance sans les voir... Appelez moi !